#include <bits/stdc++.h>
#define int long long 
using namespace std;

const int maxn = 1e5 + 10;
int nex[maxn][26]; // 记录是否包含该字符
int cnt[maxn]; // 该字符串有多少个
int idx=2; // 1 为根
int n;
string ss[maxn];
void insert(string s){
	int root=1; // 根
	int len=s.length()-1;
	for(int i=1;i<=len;i++){
		if(nex[root][s[i]-'a']==0){ // 没有
			// 开点
			nex[root][s[i]-'a']=idx++;
		}
		root=nex[root][s[i]-'a'];
		cnt[root]++; // 每个前缀的个数都需要记录
	}
}

int check(string s){
	int root=1;
	int len=s.length()-1;
	for(int i=1;i<=len;i++){
		int x=nex[root][s[i]-'a'];
		if(cnt[x]==1){ // 只有他一个
			return i-1;
		}
		root=nex[root][s[i]-'a']; // 下一个字母
	}
	return len; // 全部能匹配上
}


void solve(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>ss[i];
		ss[i]="0"+ss[i];
		insert(ss[i]);
	}
	
	for(int i=1;i<=n;i++){
		cout<< check(ss[i])<<'\n';
	}
}

signed main(){
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	solve();
	return 0;
}
